<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/10/8 0008
 * Time: 上午 11:01
 */
namespace app\common\api;
use \think\Request;

abstract class AApi{
    #传入参数
    public static $post_data;
    #接口初始化
    public function __construct()
    {
        #字体类型（避免汉字乱码）
        header('Content-Type:text/html;charset=utf-8');
        #允许任意域名发起跨域请求
        header("Access-Control-Allow-Origin: *");
        #接收数据
        $post_data = file_get_contents('php://input', 'r');//把整个文件读入一个字符串中
        #get方式提交
        $get_data = input();
        if(!empty($get_data['data']) && !empty($get_data['sign'])){
            $post_data = json_encode($get_data);
        }
        //解密
        $post_data = decodeData($post_data);
        //判断数据和验证签名是否存在，不存在，结束
        $data = isset($post_data['data'])?$post_data['data']:'';
        $sign = isset($post_data['sign'])?$post_data['sign']:'';
        if (!$data && !$sign){
            exit();
        }

        #签名验证
        if (!check_sign($data,$sign)){
            $json = array(
                'code'  => '10001',//数据验证失败
                'msg'   => config('msg.10001')
            );
            ob_clean();//清除缓冲区
            echo create_callback($json);
            exit();
        }
        self::$post_data = $post_data['data'];
        unset($data,$sign,$post_data);
    }
    /**
     * 修改器 设置数据对象的值
     * @access public
     * @param string $name  名称
     * @param mixed  $value 值
     * @return void
     */
    public function __set($name, $value)
    {
        $this->post_data[$name] = $value;
    }

    /**
     * 获取器 获取数据对象的值
     * @access public
     * @param string $name 名称
     * @return mixed
     */
    public function __get($name)
    {
        return $this->post_data[$name];
    }

}